Tema 14 - Aprendizaje No Supervisado

Técnicas para ‘Big Data’ en Economía - Curso 2023/24
Universidad de Alicante

Prof.: Pedro Albarrán

Dpto. de Fundamentos del Análisis Económico. Universidad de Alicante

Prof.: Alberto Pérez Bernabeu

Aprendizaje no supervisado

  • Objetivo: buscar patrones o relaciones en los datos sin una meta clara

    • Ej.: compradores con historias de navegación y compra similares
  • En ocasiones, parte del análisis exploratorio de datos.

  • Resultados más subjetivos: sin objetivos claros y sin mecanismos para validar los resultados (no hay respuesta correcta para comparar los resultados)

  • Clustering: técnicas para identificar subgrupos homogéneos de observaciones a partir de sus características observadas.

    • La estructura o patrón a descubrir no se conoce de antemano.
  • P.e., la segmentación de mercado pretende identificar subgrupos más receptivos a publicidad o comprar un producto a partir de información de renta, edad, género, etc.

Clustering

  • Para K dado, se divide el conjunto de datos en K grupos distintos \(\small C_1,\dots,C_K\) (no solapados)

  • Cada observación pertenece a un grupo

  • La variación dentro de un cluster (within-cluster sum of squares o wss) es una medida de cuánto difieren las observaciones de un cluster entre sí

\[\scriptsize W(C_{k}) = \frac{1}{|n_{k}|}\sum_{i,i^{\prime} \in C_{k}} \sum_{j=1}^{p}(x_{ij} - x_{i^{\prime}j})^{2}\]

  • La partición óptima minimiza la suma total de la variación within (total wss) \(\small \mathrm{min}_{C_{1},\ \dots,\ C_{K}} \bigg \{\sum_{k=1}^{K} W(C_{k}) \bigg \}\) \(\Rightarrow\) INVIABLE (\(\small K^n\) particiones)

Algoritmo de K-Means

  • Se puede encontrar un mínimo local
  1. Conjetura inicial: asignar cada observación a un grupo (aleatoriamente)

  2. Iterar hasta las asignaciones dejen de cambiar:

    a.- Calcular el centroide \(\small m_k\) de cada grupo(vector de medias de las observaciones del grupo \(\small k\))

    b.- Asignar cada observación al grupo cuyo centroide es el más cercano (distancia L2).

Algoritmo de K-Means: diferentes mínimos

  • Este algoritmo garantiza que la función objetivo disminuye en cada paso
  • El resultado (óptimo local) depende de la asignación aleatoria inicial

  • Se DEBE ejecutar el algoritmo con varias asignaciones iniciales y seleccionar la solución con menor valor de la función objetivo

Número óptimo de clusters

  • La agrupación óptima es relativamente “subjetiva”: depende de cómo se miden las similitudes, qué parámetros se utilizan para la partición, etc.

  • Entre los muchos métodos existentes el “método del codo” (elbow method) es relativamente sencillo

  1. Calcular el algoritmo de clustering para diferentes valores de \(\small k\).

  2. Para cada \(\small k\), obtener la suma cuadrática total dentro del grupo (total wss)

  3. Dibujar un gráfico de la total wss en función de \(\small k\)

  4. Un cambio de curvatura se considera como un indicador de \(\small k\) óptimo

Ejemplo de clustering

clientes <- read_csv("https://raw.githubusercontent.com/albarran/00datos/main/clientes.csv")
clientes2 <- clientes %>% 
                mutate(cluster = factor(kmeans(x = ., centers = 2)$cluster) )
clientes2 %>% 
  ggplot(aes(y = valor_compra, x = dias_transcurridos)) + 
  geom_point(aes(color = cluster))
  • El método del codo se implementa con la función fviz_nbclust():
library(factoextra)
fviz_nbclust(clientes, kmeans, method = "wss") +
    geom_vline(xintercept = 2)
iris.data <- iris %>% select(-5)
fviz_nbclust(iris.data, kmeans, method = "wss") +
    geom_vline(xintercept = 3)